-
Notifications
You must be signed in to change notification settings - Fork 4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(web,dashboard): migrate dashboard v2 #7741
base: next
Are you sure you want to change the base?
Conversation
✅ Deploy Preview for dev-web-novu ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
✅ Deploy Preview for dashboard-v2-novu-staging ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
LaunchDarkly flag references❌ 1 flag removed
|
@novu/client
@novu/headless
@novu/node
@novu/notification-center
novu
@novu/providers
@novu/shared
commit: |
@@ -32,7 +32,7 @@ export const OrganizationDropdown = () => { | |||
<ClerkOrganizationSwitcher | |||
hidePersonal | |||
skipInvitationScreen | |||
afterCreateOrganizationUrl={ROUTES.USECASE_SELECT + '?v2_opt_in=true'} | |||
afterCreateOrganizationUrl={ROUTES.USECASE_SELECT} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the opt-in logic is now handled with the Clerk webhook event: https://github.com/novuhq/packages-enterprise/pull/270
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could it be that there will be some delivery delay on their webhook? It happened before, and during that time our service might redirect the user to the wrong place. How can we ensure that by the time the user reaches the USECASE SELECT he already opted in?
@@ -28,8 +28,6 @@ export const MIXPANEL_KEY = import.meta.env.VITE_MIXPANEL_KEY; | |||
|
|||
export const LEGACY_DASHBOARD_URL = import.meta.env.VITE_LEGACY_DASHBOARD_URL; | |||
|
|||
export const NEW_DASHBOARD_FEEDBACK_FORM_URL = import.meta.env.VITE_NEW_DASHBOARD_FEEDBACK_FORM_URL; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
removed the google feedback form
if (isLoaded && status !== NewDashboardOptInStatusEnum.OPTED_IN) { | ||
redirectToLegacyDashboard(); | ||
|
||
return null; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
when the user is opted-out redirect him to the old dashboard with preserving the URL route and query params
@@ -120,7 +119,6 @@ export const WorkflowsPage = () => { | |||
<> | |||
<PageMeta title="Workflows" /> | |||
<DashboardLayout headerStartItems={<h1 className="text-foreground-950 flex items-center gap-1">Workflows</h1>}> | |||
<OptInModal /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
removed opt-in modal
@@ -77,7 +69,6 @@ const AuthRoutes = () => { | |||
<Route path={ROUTES.AUTH_RESET_REQUEST} element={<PasswordResetPage />} /> | |||
<Route path={ROUTES.AUTH_RESET_TOKEN} element={<PasswordResetPage />} /> | |||
<Route path={ROUTES.AUTH_INVITATION_TOKEN} element={<InvitationPage />} /> | |||
<Route path={ROUTES.AUTH_APPLICATION} element={<QuestionnairePage />} /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed the questionnaire page and all related code. All old/new users will sign-in/up through the new Dashboard and it's flow.
<NavMenuLinkButton | ||
label="Get started" | ||
isVisible={!isLoadingOnboardingStatus && showOnboarding} | ||
icon={<IconTaskAlt />} | ||
link={ROUTES.GET_STARTED} | ||
testId="side-nav-quickstart-link" | ||
rightSide={{ | ||
node: <VisibilityButton onClick={handleHideOnboardingClick} />, | ||
triggerOn: 'hover', | ||
tooltip: 'Hide this page from menu', | ||
}} | ||
/> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no get-started link in the side nav
@@ -14,7 +14,7 @@ export function UserProfileButton() { | |||
> | |||
<UserButton.MenuItems> | |||
<UserButton.Action | |||
label="Try out the new Dashboard (beta)" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
removed beta label
useEffect(() => { | ||
window.location.href = `${NEW_DASHBOARD_URL}/auth/sign-in`; | ||
}, []); | ||
|
||
return null; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
for the web app sign-in/up pages redirect to the new Dashboard corresponding pages
@@ -189,21 +186,12 @@ export function IntegrationsListModal({ | |||
channel={provider?.channel} | |||
/> | |||
|
|||
{isV2Enabled ? ( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no need for this as we enabled it long time ago
import { INTERCOM_APP_ID } from '../../../../../config'; | ||
import { discordInviteUrl, notificationCenterDocsUrl, OnBoardingAnalyticsEnum } from '../../../../quick-start/consts'; | ||
|
||
export function Faq() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
moved from another place
What changed? Why was the change needed?
IMPORTANT
Before merging this PR make sure we did all the "Release process" steps described in the ticket.
Corresponding enterprise repo PR: https://github.com/novuhq/packages-enterprise/pull/270
Please check the ticket to understand all the requirements.
In short, we would like to have the new Dashboard app as the main entry point for the
dashboard.novu.co
domain.The changes in the Web app:
Try out the new Dashboard
- removed betaThe changes in the Dashboard app:
Screenshots
Screen.Recording.2025-02-17.at.16.52.32.mov
Screen.Recording.2025-02-17.at.17.35.50.mov
Screen.Recording.2025-02-17.at.16.58.54.mov